/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package juan2;

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

/**
 *
 * @author Diego
 */
public class NodoArbol {
    private char elemento;

   private List<NodoArbol> hijos;

 

   public NodoArbol(char elemento) {

      this.elemento = elemento;

      hijos = new ArrayList<NodoArbol>();
   }

 

   public char getElemento() {

      return elemento;

   }

 

   public void addHijo(NodoArbol hijo) {

      hijos.add(hijo);

   }

 

   public List<NodoArbol> getHijos() {

      return hijos;

   }

 

   public boolean esNodoHoja() {

      return hijos.size() > 0;
         
   }
   
   
   
   
   public boolean busquedaProfundidad(char b) {
       
	Stack<NodoArbol> pilaAuxiliar = new Stack<NodoArbol>();
	pilaAuxiliar.push(this);

	while(pilaAuxiliar.size() != 0) {
		NodoArbol cabeza = pilaAuxiliar.pop();
		System.out.println(cabeza.getElemento());  // solo añadido como informacion para nosotros
		if(cabeza.getElemento() == b)
			return true;
		else
			for(int i = cabeza.getHijos().size() - 1; i >= 0; i--)
				pilaAuxiliar.push(cabeza.getHijos().get(i));
	}
	return false;
}
   
   
   
   
   
   
   
   
  public boolean busqueda2(char c) {
       
	Stack<NodoArbol> pilaAuxiliar = new Stack<NodoArbol>();
	pilaAuxiliar.push(this);

	while(pilaAuxiliar.size() != 0) {
		NodoArbol cabeza = pilaAuxiliar.pop();
		System.out.println(cabeza.getElemento());  // solo añadido como informacion para nosotros
		if(cabeza.getElemento() == c)
			return true;
		else
			for(int i = cabeza.getHijos().size() - 1; i >= 0; i--)
				pilaAuxiliar.push(cabeza.getHijos().get(i));
	}
	return false;
}  
  

  
  
  
  

 public boolean busqueda3(char d) {
       
	Stack<NodoArbol> pilaAuxiliar = new Stack<NodoArbol>();
	pilaAuxiliar.push(this);

	while(pilaAuxiliar.size() != 0) {
		NodoArbol cabeza = pilaAuxiliar.pop();
		System.out.println(cabeza.getElemento());  // solo añadido como informacion para nosotros
		if(cabeza.getElemento() == d)
			return true;
		else
			for(int i = cabeza.getHijos().size() - 1; i >= 0; i--)
				pilaAuxiliar.push(cabeza.getHijos().get(i));
	}
	return false;
}


}
